#pragma once

#include <QObject>

#include <gp_Pnt.hxx>

class QSketchManager;
class MainWindow;

// 草图曲线创建基类
class QSketchCurveAction  : public QObject
{
	Q_OBJECT

public:
	QSketchCurveAction(QSketchManager* parent, MainWindow* mainWindow);
	~QSketchCurveAction();

	virtual void StartCreate() = 0;
	virtual void OnMouseMove(const gp_Pnt& point) = 0;
	virtual void OnLeftDown(const gp_Pnt& point) = 0;
	virtual void Reset() = 0;

protected:
	QSketchManager* m_sketchManager;
	MainWindow* m_mainWindow;
};
